package com.taijihuabao.modules.mapper;

import com.taijihuabao.modules.entity.DeptEntity;
import com.taijihuabao.modules.model.dept.dept.DeptDTO;
import com.taijihuabao.modules.model.dept.dept.DeptPageDTO;

import java.util.List;

/**
 * 部门管理
 *
 * @author xiaob
 */
public interface DeptMapper {

    /**
     * 获取部门列表
     *
     * @return
     */
    List<DeptEntity> selectDepts();

    /**
     * 获取部门列表(带分页)
     *
     * @param deptDTO
     * @return
     */
    List<DeptEntity> selectAllDept(DeptPageDTO deptDTO);

    /**
     * 查询所有子部门
     * @param parentDept
     * @return
     */
    List<DeptEntity> selectDeptByParentCode(String parentDept);

    /**
     * 单条部门信息（code）
     * @param deptCode
     * @return
     */
    DeptEntity selectDeptByCode(String deptCode);

    /**
     * 单条部门信息（id）
     * @param id
     * @return
     */
    DeptEntity selectDeptById(Long id);

    /**
     * 部门信息（name）
     *
     * @param deptName
     * @return
     */
    List<DeptEntity> selectDeptByName(String deptName);

    /**
     * 新增部门
     *
     * @param deptEntity
     * @return
     */
    int insertDept(DeptDTO deptEntity);

    /**
     * 修改部门
     *
     * @param deptEntity
     * @return
     */
    int updateDept(DeptDTO deptEntity);

    /**
     * 逻辑删除部门
     *
     * @param deptEntity
     * @return
     */
    Integer deleteDept(DeptDTO deptEntity);

}
